package newsSystem.Test;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class MenuPanelTest extends JFrame implements ActionListener {
    private JPanel panel1, panel2;

    public MenuPanelTest() {
        setTitle("菜单示例");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(400, 300);
        setLocationRelativeTo(null);

        // 创建面板
        panel1 = new JPanel();
        panel1.setBackground(Color.RED);
        panel2 = new JPanel();
        panel2.setBackground(Color.BLUE);

        // 创建菜单栏
        JMenuBar menuBar = new JMenuBar();

        // 创建菜单
        JMenu menu = new JMenu("操作");

        // 创建菜单项
        JMenuItem menuItem1 = new JMenuItem("显示红色面板");
        JMenuItem menuItem2 = new JMenuItem("显示蓝色面板");
        JMenuItem exitMenuItem = new JMenuItem("退出");

        // 添加菜单项的点击事件监听器
        menuItem1.addActionListener(this);
        menuItem2.addActionListener(this);
        exitMenuItem.addActionListener(this);

        // 将菜单项添加到菜单中
        menu.add(menuItem1);
        menu.add(menuItem2);
        menu.addSeparator(); // 添加分隔符
        menu.add(exitMenuItem);

        // 将菜单添加到菜单栏中
        menuBar.add(menu);

        // 设置菜单栏
        setJMenuBar(menuBar);

        // 设置默认显示的面板
        add(panel1);

        setVisible(true);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(MenuPanelTest::new);
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        String command = e.getActionCommand();
        switch (command) {
            case "显示红色面板":
                getContentPane().removeAll(); // 移除所有组件
                add(panel1); // 添加红色面板
                revalidate(); // 重新布局
                repaint(); // 重绘
                break;
            case "显示蓝色面板":
                getContentPane().removeAll(); // 移除所有组件
                add(panel2); // 添加蓝色面板
                revalidate(); // 重新布局
                repaint(); // 重绘
                break;
            case "退出":
                System.exit(0);
                break;
            default:
                break;
        }
    }
}
